EU Cohesion Policy V3: Causal Identification Report

Headline estimator: panel IV (eligibility × post instrument) for gdp_pc_real_growth.

Benchmarks: TWFE models A/B/C, RD around the 75 threshold, placebo leads/lags, and convergence diagnostics.

Regions
398
Year range
1986-2025
Headline IV coef
0.0042
Headline IV p-value
0.9429
First-stage F
1.54

Dataset Coverage and Missingness

metric value
min_year 1986
max_year 2025
n_regions 398
n_rows 15920
headline_outcome gdp_pc_real_growth
variable missing_rate
gdp_pc_growth 0.876947
erdf_eur_pc_l3 0.859296
rd_gerd 0.854899
gva 0.852261
erdf_eur_pc_l2 0.840578
erdf_eur_pc_l1 0.823053
erdf_eur_pc 0.805465
unemp_rate 0.767085
tertiary_share_25_64 0.765578
emp_rate 0.764824
gdp_pc_real_growth 0.622362
gdp_pc_pps_growth 0.609422

Headline Causal Results

IV and RD are foregrounded; TWFE is retained as benchmark.

estimator_family model outcome term coef std_err p_value ci_95_lower ci_95_upper n_obs n_regions fe_type clustering window n_regions_right first_stage_f_stat
IV IV 2SLS (panel) gdp_pc_real_growth erdf_eur_pc_l1 0.004232 0.059070 0.942888 -0.111543 0.120006 1175 223 year nuts2 panel_post2014_instrument NaN 1.538019
RD fuzzy_rd (bw=10) gdp_pc_real_growth_post_2016_2020 erdf_eur_pc_cum_2014_2020 -0.000304 0.002538 0.904508 -0.005278 0.004669 53 24 local_linear HC1 post_2016_2020 29.0 NaN
RD sharp_rd (bw=10) gdp_pc_real_growth_post_2016_2020 eligible_lt75 -0.158809 1.375125 0.908059 -2.854005 2.536387 53 24 local_linear HC1 post_2016_2020 29.0 NaN
TWFE Model A gdp_pc_real_growth erdf_eur_pc_l1 0.005680 0.003025 0.060399 -0.000248 0.011608 1175 223 year nuts2 panel NaN NaN
TWFE Model B gdp_pc_real_growth erdf_eur_pc_l1 0.003362 0.002888 0.244443 -0.002299 0.009023 1175 223 country_year nuts2 panel NaN NaN
TWFE-dynamic Model C gdp_pc_real_growth erdf_eur_pc_l1 0.011999 0.004850 0.013356 0.002494 0.021505 861 223 year nuts2 panel NaN NaN
outcome model fe_type clustering term coef std_err t_stat p_value ci_95_lower ci_95_upper first_stage_f_stat n_obs n_regions sample_year_min sample_year_max instrument formula
gdp_pc_pps_growth IV 2SLS (panel) year nuts2 erdf_eur_pc_l1 0.003099 0.078398 0.039530 0.968468 -0.150558 0.156756 1.538019 1175 223 2017 2023 eligible_lt75 × eu_erdf_intensity_t gdp_pc_pps_growth ~ 1 + unemp_rate + emp_rate + tertiary_share_25_64 + rd_gerd + gva + C(nuts2_id) + C(year) [erdf_eur_pc_l1 ~ z_eligible_intensity]
gdp_pc_pps_growth IV 2SLS (panel) year nuts2_country erdf_eur_pc_l1 0.003099 0.132969 0.023306 0.981406 -0.257516 0.263714 0.560798 1175 223 2017 2023 eligible_lt75 × eu_erdf_intensity_t gdp_pc_pps_growth ~ 1 + unemp_rate + emp_rate + tertiary_share_25_64 + rd_gerd + gva + C(nuts2_id) + C(year) [erdf_eur_pc_l1 ~ z_eligible_intensity]
gdp_pc_real_growth IV 2SLS (panel) year nuts2 erdf_eur_pc_l1 0.004232 0.059070 0.071641 0.942888 -0.111543 0.120006 1.538019 1175 223 2017 2023 eligible_lt75 × eu_erdf_intensity_t gdp_pc_real_growth ~ 1 + unemp_rate + emp_rate + tertiary_share_25_64 + rd_gerd + gva + C(nuts2_id) + C(year) [erdf_eur_pc_l1 ~ z_eligible_intensity]
gdp_pc_real_growth IV 2SLS (panel) year nuts2_country erdf_eur_pc_l1 0.004232 0.092749 0.045626 0.963608 -0.177553 0.186017 0.560798 1175 223 2017 2023 eligible_lt75 × eu_erdf_intensity_t gdp_pc_real_growth ~ 1 + unemp_rate + emp_rate + tertiary_share_25_64 + rd_gerd + gva + C(nuts2_id) + C(year) [erdf_eur_pc_l1 ~ z_eligible_intensity]

Regression Discontinuity Around 75% Eligibility Cutoff

estimator outcome window bandwidth coef std_err t_stat p_value ci_95_lower ci_95_upper n_obs n_left n_right cutoff kernel polynomial_order treatment_var first_stage_f_stat
fuzzy_rd gdp_pc_pps_growth_post_2016_2020 post_2016_2020 10.0 -0.003778 0.004204 -0.898659 0.368834 -0.012017 0.004462 53 24 29 75.0 triangular 1 erdf_eur_pc_cum_2014_2020 1.787239
sharp_rd gdp_pc_pps_growth_post_2016_2020 post_2016_2020 10.0 -1.970790 1.536487 -1.282659 0.199611 -4.982249 1.040670 53 24 29 75.0 triangular 1 eligible_lt75 NaN
fuzzy_rd gdp_pc_pps_growth_post_2021_2023 post_2021_2023 10.0 0.005445 0.005153 1.056606 0.290692 -0.004655 0.015545 53 24 29 75.0 triangular 1 erdf_eur_pc_cum_2014_2020 1.787239
sharp_rd gdp_pc_pps_growth_post_2021_2023 post_2021_2023 10.0 2.840440 1.201786 2.363516 0.018102 0.484983 5.195897 53 24 29 75.0 triangular 1 eligible_lt75 NaN
fuzzy_rd gdp_pc_real_growth_post_2016_2020 post_2016_2020 10.0 -0.000304 0.002538 -0.119968 0.904508 -0.005278 0.004669 53 24 29 75.0 triangular 1 erdf_eur_pc_cum_2014_2020 1.787239
sharp_rd gdp_pc_real_growth_post_2016_2020 post_2016_2020 10.0 -0.158809 1.375125 -0.115487 0.908059 -2.854005 2.536387 53 24 29 75.0 triangular 1 eligible_lt75 NaN
fuzzy_rd gdp_pc_real_growth_post_2021_2023 post_2021_2023 10.0 0.004639 0.004081 1.136790 0.255626 -0.003359 0.012638 53 24 29 75.0 triangular 1 erdf_eur_pc_cum_2014_2020 1.787239
sharp_rd gdp_pc_real_growth_post_2021_2023 post_2021_2023 10.0 2.420227 0.975072 2.482100 0.013061 0.509120 4.331333 53 24 29 75.0 triangular 1 eligible_lt75 NaN
estimator outcome window bandwidth coef std_err t_stat p_value ci_95_lower ci_95_upper n_obs n_left n_right cutoff kernel polynomial_order treatment_var first_stage_f_stat
sharp_rd gdp_pc_real_growth_pre_2010_2013 pre_2010_2013 10.0 -1.941947 2.455542 -0.790842 0.429036 -6.754721 2.870828 53 24 29 75.0 triangular 1 eligible_lt75 NaN

Binned scatter (PNG)

RD binned scatter

Bandwidth sensitivity (PNG)

RD bandwidth sensitivity

IV Diagnostics

outcome model fe_type term coef std_err t_stat p_value ci_95_lower ci_95_upper n_obs n_regions first_stage_f_stat
gdp_pc_pps_growth IV first stage year z_eligible_intensity 0.163688 0.147836 1.107222 0.268198 -0.126066 0.453441 1175 223 1.538019
gdp_pc_pps_growth IV first stage year z_eligible_intensity 0.163688 0.147836 1.107222 0.268198 -0.126066 0.453441 1175 223 0.560798
gdp_pc_real_growth IV first stage year z_eligible_intensity 0.163688 0.147836 1.107222 0.268198 -0.126066 0.453441 1175 223 1.538019
gdp_pc_real_growth IV first stage year z_eligible_intensity 0.163688 0.147836 1.107222 0.268198 -0.126066 0.453441 1175 223 0.560798
outcome model fe_type clustering term coef std_err t_stat p_value ci_95_lower ci_95_upper first_stage_f_stat n_obs n_regions sample_year_min sample_year_max instrument formula
gdp_pc_pps_growth IV 2SLS (panel) year nuts2 erdf_eur_pc_l1 0.003099 0.078398 0.039530 0.968468 -0.150558 0.156756 1.538019 1175 223 2017 2023 eligible_lt75 × eu_erdf_intensity_t gdp_pc_pps_growth ~ 1 + unemp_rate + emp_rate + tertiary_share_25_64 + rd_gerd + gva + C(nuts2_id) + C(year) [erdf_eur_pc_l1 ~ z_eligible_intensity]
gdp_pc_pps_growth IV 2SLS (panel) year nuts2_country erdf_eur_pc_l1 0.003099 0.132969 0.023306 0.981406 -0.257516 0.263714 0.560798 1175 223 2017 2023 eligible_lt75 × eu_erdf_intensity_t gdp_pc_pps_growth ~ 1 + unemp_rate + emp_rate + tertiary_share_25_64 + rd_gerd + gva + C(nuts2_id) + C(year) [erdf_eur_pc_l1 ~ z_eligible_intensity]
gdp_pc_real_growth IV 2SLS (panel) year nuts2 erdf_eur_pc_l1 0.004232 0.059070 0.071641 0.942888 -0.111543 0.120006 1.538019 1175 223 2017 2023 eligible_lt75 × eu_erdf_intensity_t gdp_pc_real_growth ~ 1 + unemp_rate + emp_rate + tertiary_share_25_64 + rd_gerd + gva + C(nuts2_id) + C(year) [erdf_eur_pc_l1 ~ z_eligible_intensity]
gdp_pc_real_growth IV 2SLS (panel) year nuts2_country erdf_eur_pc_l1 0.004232 0.092749 0.045626 0.963608 -0.177553 0.186017 0.560798 1175 223 2017 2023 eligible_lt75 × eu_erdf_intensity_t gdp_pc_real_growth ~ 1 + unemp_rate + emp_rate + tertiary_share_25_64 + rd_gerd + gva + C(nuts2_id) + C(year) [erdf_eur_pc_l1 ~ z_eligible_intensity]

Convergence Evidence

Placebo leads/lags (interactive)

Placebo leads/lags (PNG fallback)

Leads lags placebo

Robustness Overview

outcome model term coef std_err t_stat p_value ci_95_lower ci_95_upper n_obs n_regions fe_type clustering sample_year_min sample_year_max controls_used outlier_rule erdf_eur_pc_global_p99 balanced_window_start balanced_window_end balanced_regions treatment_scale
gdp_pc_real_growth Model A (outliers excluded) erdf_eur_pc_l1 0.006324 0.003033 2.084936 0.037075 0.000379 0.012268 1156 223 year nuts2 2017 2023 unemp_rate,emp_rate,tertiary_share_25_64,rd_gerd,gva drop global top 1% erdf_eur_pc 264.108343 NaN NaN NaN NaN
gdp_pc_real_growth Model B (outliers excluded) erdf_eur_pc_l1 0.003256 0.002984 1.091103 0.275227 -0.002593 0.009104 1156 223 country_year nuts2 2017 2023 unemp_rate,emp_rate,tertiary_share_25_64,rd_gerd,gva drop global top 1% erdf_eur_pc 264.108343 NaN NaN NaN NaN
gdp_pc_real_growth Model A (balanced panel) erdf_eur_pc_l1 0.005542 0.003063 1.809299 0.070405 -0.000462 0.011546 805 115 year nuts2 2017 2023 unemp_rate,emp_rate,tertiary_share_25_64,rd_gerd,gva NaN NaN 2017.0 2023.0 115.0 NaN
gdp_pc_real_growth Model B (balanced panel) erdf_eur_pc_l1 0.002715 0.003029 0.896323 0.370080 -0.003222 0.008652 805 115 country_year nuts2 2017 2023 unemp_rate,emp_rate,tertiary_share_25_64,rd_gerd,gva NaN NaN 2017.0 2023.0 115.0 NaN
gdp_pc_real_growth Model A (scaled treatment) erdf_k_eur_pc_l1 5.679637 3.024506 1.877873 0.060399 -0.248285 11.607559 1175 223 year nuts2 2017 2023 unemp_rate,emp_rate,tertiary_share_25_64,rd_gerd,gva NaN NaN NaN NaN NaN EUR 1,000 per capita
gdp_pc_real_growth Model B (scaled treatment) erdf_k_eur_pc_l1 3.361760 2.888228 1.163952 0.244443 -2.299063 9.022584 1175 223 country_year nuts2 2017 2023 unemp_rate,emp_rate,tertiary_share_25_64,rd_gerd,gva NaN NaN NaN NaN NaN EUR 1,000 per capita

Limitations

Generated by scripts/run_models.py. This file is standalone and can be opened directly.